Notes and Setup
This is an initial attemmt at compiling the data. Future work includes: 1. Developing more rigorous QAQC procedures 2. Implimenting said procedures 3. Increasing the spead of the database upload…[right now it took over 7.5 hours!]
Water Level QAQC
Plots
This is preliminary data and will undergo more rigurous QAQC at a later date. I will go back and plot individually later as part of the QAQC procedure! :)
[[1]]
[[2]]
[[3]]
[[4]]
[[5]]
[[6]]
[[7]]
[[8]]
[[9]]
[[10]]
[[11]]
[[12]]
[[13]]
[[14]]
[[15]]
[[16]]
[[17]]
[[18]]
[[19]]
[[20]]
[[21]]
[[22]]
[[23]]
[[24]]
NA
Database Import
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
LS0tCnRpdGxlOiAiNC85LzE4IERhdGEgRG93bmxvYWQgJiBQcm9jZXNzaW5nIgpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDoKICAgIGRmX3ByaW50OiBwYWdlZAogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCiAgaHRtbF9ub3RlYm9vazoKICAgIHRvYzogeWVzCiAgICB0b2NfZmxvYXQ6IHllcwotLS0KCiNOb3RlcyBhbmQgU2V0dXAKClRoaXMgaXMgYW4gaW5pdGlhbCBhdHRlbW10IGF0IGNvbXBpbGluZyB0aGUgZGF0YS4gIEZ1dHVyZSB3b3JrIGluY2x1ZGVzOgoxLiAgRGV2ZWxvcGluZyBtb3JlIHJpZ29yb3VzIFFBUUMgcHJvY2VkdXJlcwoyLiAgSW1wbGltZW50aW5nIHNhaWQgcHJvY2VkdXJlcwozLiAgSW5jcmVhc2luZyB0aGUgc3BlYWQgb2YgdGhlIGRhdGFiYXNlIHVwbG9hZC4uLltyaWdodCBub3cgaXQgdG9vayBvdmVyIDcuNSBob3VycyFdCgoKYGBge3Igc2V0dXAsIGVjaG89RkFMU0UsIHJlc3VsdHM9ImhpZGUiLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQojQ2xlYXIgTWVtb3J5CnJtKGxpc3Q9bHMoYWxsPVRSVUUpKQoKI0xvYWQgUmVxdWlyZWQgUGFja2FnZXMKbGlicmFyeShkcGx5cikgICAKbGlicmFyeShkZXZ0b29scykKbGlicmFyeShSU1FMaXRlKQpsaWJyYXJ5KERCSSkKbGlicmFyeSh4dHMpCmxpYnJhcnkoZHlncmFwaHMpCmxpYnJhcnkoUlBvc3RncmVTUUwpCgojTG9hZCBQYWxtZXIgTGFiIHRvb2xzCnNvdXJjZSgifi9wcmVzc3VyZV90cmFuc2R1Y2Vycy9kYl9nZXRfd2F0ZXJfbGV2ZWxfdHMuUiIpCmRldnRvb2xzOjppbnN0YWxsX2dpdGh1YihyZXBvPSJyb2RtMiIsdXNlcm5hbWU9Imtob25kdWxhIiwgcXVpZXQgPSBGKQpsaWJyYXJ5KHJvZG0yKQoKI0RlZmluZSB3b3JraW5nIGRpcmVjdG9yeSBhbmQgZGF0YWJhc2UgbG9jYXRpb24Kd29ya2luZ19kaXI8LSIvL25mcy9wYWxtZXItZ3JvdXAtZGF0YS9DaG9wdGFuay9OYXRlL1BUX0RhdGEvMjAxODA0MDlfRG93bmxvYWRzLyIKCiNEb3dubG9hZCBEYXRhCm1hc3RlcjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCJ3ZWxsX2xvZy5jc3YiKSkKCiNDcmVhdGUgdGVtcCBmaWxlCmRpci5jcmVhdGUocGFzdGUwKHdvcmtpbmdfZGlyLCJpbnRlcm1lZGlhdGUiKSkKCiNDb25uZWN0IHRvIGRhdGFiYXNlCmRiIDwtIGRiQ29ubmVjdChQb3N0Z3JlU1FMKCksIAogICAgICAgICAgICAgICAgaG9zdCAgICAgPSAic2VzeW5jLXBvc3RnaXMwMS5yZXNlYXJjaC5zZXN5bmMub3JnIiwKICAgICAgICAgICAgICAgIGRibmFtZSAgID0gImNob3B0YW5rIiwKICAgICAgICAgICAgICAgIHVzZXIgICAgID0gInBhbG1lcmdyb3VwIiwgCiAgICAgICAgICAgICAgICBwYXNzd29yZCA9IHJlYWRsaW5lKHByb21wdD0iRW50ZXIgcGFzc3dvcmQ6ICIpKQpgYGAKCmBgYHtyIGluaXRpYWwtY2hlY2tzLCBlY2hvPUZBTFNFLCByZXN1bHRzPSJoaWRlIn0KI0NoZWNrIHRvIG1ha2Ugc3VyZSBzaXRlIG5hbWVzIGFyZSBpbiBEQi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmE8LWFzLm1hdHJpeChtYXN0ZXJbLCJTaXRlX05hbWUiXSwgbmNvbD0xKQpiPC1nZXRfc2l0ZV9uYW1lc19saWtlKCIgIixkYikjYXMubWF0cml4KGRiR2V0UXVlcnkoZGIsIlNFTEVDVCBTYW1wbGluZ0ZlYXR1cmVDb2RlIEZST00gU2FtcGxpbmdGZWF0dXJlcyIpKQppZihsZW5ndGgoYVshKGEgJWluJSBiKV0pIT0wKXsKICB3YXJuaW5nKHBhc3RlMCgiU2l0ZSBOYW1lcyBpbiBXZWxsIExvZyBhbmQgRGF0YWJhc2UgZG8gbm90IG1hdGNoISEiKSkKICBwcmludChhWyEoYSAlaW4lIGIpXSkKfWVsc2V7CiAgIlNpdGUgTmFtZXMgTWF0Y2ghIgp9CgojQ2hlY2sgdG8gbWFrZSBzdXJlIFNvbmRlIElEIGluIHdlbGwgbG9nIGFuZCBTZXJpYWwgTnVtYmVyIGluIGZpbGVzIG1hdGNoLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZnVuPC1mdW5jdGlvbihuKXsKICAjUmVhZCBkYXRhCiAgdGVtcDwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCJleHBvcnQvIiwgbG9nc1tuXSksIHNraXA9MSkKICAKICAjZXh0cmFjdCBzZXJpYWwgbnVtYmVyCiAgc2VyaWFsX251bWJlcjwtY29sbmFtZXModGVtcClbZ3JlcCgiTEdSIixjb2xuYW1lcyh0ZW1wKSldWzFdICAjRmluZCBjb2xsdW1uIG5hbWUgd2l0aCBzZXJpYWwgbnVtYmVyCiAgc2VyaWFsX251bWJlcjwtc3Vic3RyKHNlcmlhbF9udW1iZXIsICAgI2lzb2xhdGUgc2VyaWFsIG51bWJlcgogICAgICAgICAgICAgICAgICAgICAgICBncmVnZXhwcigiU0VOLlMuTiIsc2VyaWFsX251bWJlcilbWzFdXVsxXSs5LCAjU3RhcnQKICAgICAgICAgICAgICAgICAgICAgICAgbmNoYXIoc2VyaWFsX251bWJlciktMSkgI3N0b3AKICBzZXJpYWxfbnVtYmVyPC1hcy5udW1lcmljKHNlcmlhbF9udW1iZXIpIAogIAogICNleHBvcnQgc2VyaWFsIG51bWJlcgogIHNlcmlhbF9udW1iZXIKfQojQ3JlYXRlIGxpc3Qgb2YgZmlsZXMgCmxvZ3M8LWxpc3QuZmlsZXMocGFzdGUwKHdvcmtpbmdfZGlyLCJleHBvcnQiKSkKbG9nczwtbG9nc1tsb2dzIT0iYmFyby5jc3YiXQphPC1zYXBwbHkoc2VxKDEsbGVuZ3RoKGxvZ3MpKSwgZnVuKSAgCmI8LW1hc3RlciRTb25kZV9JRCAgCmlmKGxlbmd0aChhWyEoYSAlaW4lIGIpXSkhPTApewogIHdhcm5pbmcocGFzdGUwKCJTb25kZSBzZXJpYWwgbnVtYmVyIGluIFdlbGwgTG9nIGFuZCBkYXRhIGZpbGVzIGRvIG5vdCBtYXRjaCEhIikpCiAgcHJpbnQoYVshKGEgJWluJSBiKV0pCn1lbHNlewogICJTZXJpYWwgTnVtYmVycyBNYXRjaCIKfQoKI0NoZWNrIHVuaXRzIGluIGZpbGVzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNDcmVhdGUgZnVuY3RvaW4gdG8gY2hlY2sgdW5pdHMgaW4gZmlsZQpmdW48LWZ1bmN0aW9uKG4pewogICNEb253bG9hZCBkYXRhCiAgdGVtcDwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCJleHBvcnQvIiwgbG9nc1tuXSksIHNraXA9MSkKICAKICAjQ2hlY2sgcHJlc3N1cmUgdW5pdHMKICBwcmVzc191bml0czwtY29sbmFtZXModGVtcClbZ3JlcCgia1BhIixjb2xuYW1lcyh0ZW1wKSldWzFdIAogIHByZXNzX3VuaXRzPC1zdWJzdHIocHJlc3NfdW5pdHMsICAgI2lzb2xhdGUgdGVtcGVyYXR1cmUgdW5pdHMKICAgICAgICAgICAgICAgICAgICAgZ3JlZ2V4cHIoIkFicy5QcmVzIiwgcHJlc3NfdW5pdHMpW1sxXV1bMV0rMTAsICNTdGFydAogICAgICAgICAgICAgICAgICAgICBncmVnZXhwcigiQWJzLlByZXMiLCBwcmVzc191bml0cylbWzFdXVsxXSsxMikgI3N0b3AKCiAgI0NoZWNrIHRlbXAgdW5pdHMKICB0ZW1wX3VuaXRzPC1jb2xuYW1lcyh0ZW1wKVtncmVwKCJUZW1wIixjb2xuYW1lcyh0ZW1wKSldWzFdIAogIHRlbXBfdW5pdHM8LXN1YnN0cih0ZW1wX3VuaXRzLCAgICNpc29sYXRlIHRlbXBlcmF0dXJlIHVuaXRzCiAgICAgICAgICAgICAgICAgICAgIGdyZWdleHByKCJUZW1wIiwgdGVtcF91bml0cylbWzFdXVsxXSs3LCAjU3RhcnQKICAgICAgICAgICAgICAgICAgICAgZ3JlZ2V4cHIoIlRlbXAiLCB0ZW1wX3VuaXRzKVtbMV1dWzFdKzcpICNzdG9wCiAgCiAgI1ByaW50IHVuaXRzCiAgZGF0YS5mcmFtZShmaWxlbmFtZT1sb2dzW25dLCAKICAgICAgICAgICAgIHByZXNzdXJlPXByZXNzX3VuaXRzLCAKICAgICAgICAgICAgIHRlbXBlcmF0dXJlPXRlbXBfdW5pdHMpCn0KeDwtbGFwcGx5KHNlcSgxLCBsZW5ndGgobG9ncykpLCBmdW4pCng8LWRhdGEuZnJhbWUoZG8uY2FsbChyYmluZCx4KSkKcHJpbnQoeCkKYGBgCgpgYGB7ciBwdC1kYXRhLXdyYW5nbGluZywgZWNobz1GQUxTRSwgcmVzdWx0cz0iaGlkZSJ9CiNjcmVhdGUgZnVuY3Rpb24gdG8gZG93bmxvYWQgbG9ncywgY2xlYW4sIGFuZCByZXdyaXRlIGluIHRlbXAgZm9sZGVyCmZ1bjwtZnVuY3Rpb24obil7CiAgI1NldHVwfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICNSZWFkIGRhdGEKICBkZjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCJleHBvcnQvIiwgbG9nc1tuXSksIHNraXA9MSkKICAKICAjRGVmaW5lIHNlcmlhbCBudW1iZXIKICBzZXJpYWxfbnVtYmVyPC1jb2xuYW1lcyhkZilbZ3JlcCgiTEdSIixjb2xuYW1lcyhkZikpXVsxXSAgI0ZpbmQgY29sbHVtbiBuYW1lIHdpdGggc2VyaWFsIG51bWJlcgogIHNlcmlhbF9udW1iZXI8LXN1YnN0cihzZXJpYWxfbnVtYmVyLCAgICNpc29sYXRlIHNlcmlhbCBudW1iZXIKICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZ2V4cHIoIlNFTi5TLk4iLHNlcmlhbF9udW1iZXIpW1sxXV1bMV0rOSwgI1N0YXJ0CiAgICAgICAgICAgICAgICAgICAgICAgIG5jaGFyKHNlcmlhbF9udW1iZXIpLTEpICNzdG9wCiAgc2VyaWFsX251bWJlcjwtYXMubnVtZXJpYyhzZXJpYWxfbnVtYmVyKSAKICAKICAjRGV0ZXJtaW5lIHRpbWV6b25lIG9mZnNldCBpbiBzZWNvbmRzCiAgdGltZV9vZmZzZXQ8LWNvbG5hbWVzKGRmKVtncmVwKCJHTVQiLGNvbG5hbWVzKGRmKSldICAjR3JhYiBjb2xsdW1uIG5hbWUgdy8gdGltZSBvZmZzZXQKICB0aW1lX29mZnNldDwtYXMubnVtZXJpYyhzdWJzdHIodGltZV9vZmZzZXQsIDE2LDE4KSkqMzYwMCthcy5udW1lcmljKHN1YnN0cih0aW1lX29mZnNldCwgMTksMjApKSo2MAogIAogICNEZWZpbmUgdmFyaWFibGVzIGZyb20gd2VsbCBsb2cKICBzaXRlX25hbWU8LW1hc3RlciRTaXRlX05hbWVbbWFzdGVyJFNvbmRlX0lEPT1zZXJpYWxfbnVtYmVyXQogIGRlcGxveW1lbnQ8LXN0cnB0aW1lKHBhc3RlKG1hc3RlciREYXRlW21hc3RlciRTb25kZV9JRD09c2VyaWFsX251bWJlcl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzdGVyJFRpbWVbbWFzdGVyJFNvbmRlX0lEPT1zZXJpYWxfbnVtYmVyXSksIAogICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdD0iJW0vJWQvJVkgJUg6JU0iLCB0ej0iR01UIikKICBkZXBsb3ltZW50PC1kZXBsb3ltZW50LXRpbWVfb2Zmc2V0CiAgcmVsYXRpdmVfd2w8LW1hc3RlciRSZWxhdGl2ZV9XYXRlcl9MZXZlbF9tW21hc3RlciRTb25kZV9JRD09c2VyaWFsX251bWJlcl0KICAgIGlmKGlzLm5hKHJlbGF0aXZlX3dsKT09VCB8fCBsZW5ndGgocmVsYXRpdmVfd2wpPT0wKXtyZWxhdGl2ZV93bDwtMH0KICBiYXJvX2ZpbGU8LW1hc3RlciRiYXJvX2ZpbGVbbWFzdGVyJFNvbmRlX0lEPT1zZXJpYWxfbnVtYmVyXQogIAogICN3YXRlciBsZXZlbCB0aW1lIHNlcmVpc35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICNzdWJzZXQgZGF0YWZyYW1lIHRvIHRlbXAsIGFic19wcmVzLCBhbmQgdGVtcAogIGRmPC1kZlssYygyLDMsNCldCiAgY29sbmFtZXMoZGYpPC1jKCJUaW1lc3RhbXAiLCAicHJlc3N1cmVBYnNvbHV0ZSIsICJ0ZW1wX2MiKQogIAogICNmb3JtYXQgZGF0ZV90aW1lCiAgZGYkVGltZXN0YW1wPC1zdHJwdGltZShkZiRUaW1lc3RhbXAsICIlbS8lZC8leSAlSTolTTolUyAlcCIpLXRpbWVfb2Zmc2V0CiAgZGYkVGltZXN0YW1wPC1hcy5QT1NJWGN0KGRmJFRpbWVzdGFtcCkKICAKICAjYmFybyBmaWxlIHRpbWUgc2VyaWVzfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgI1N1YnNldCBkYXRhZnJhbWUgdG8gdGVtcCwgYWJzX3ByZXMsIGFuZCB0ZW1wCiAgYmFybzwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCJleHBvcnQvIiwgYmFyb19maWxlKSwgc2tpcD0xKQogIGJhcm88LWJhcm9bLGMoMiwzLDQpXQogIGNvbG5hbWVzKGJhcm8pPC1jKCJUaW1lc3RhbXAiLCAiYmFyb21ldHJpY1ByZXNzdXJlIiwgInRlbXBfYyIpCiAgYmFybzwtbmEub21pdChiYXJvKQogIAogICNmb3JtYXQgZGF0ZSBhbmQgdGltZQogIGJhcm8kVGltZXN0YW1wPC1zdHJwdGltZShiYXJvJFRpbWVzdGFtcCwgIiVtLyVkLyV5ICVJOiVNOiVTICVwIiktdGltZV9vZmZzZXQKICBiYXJvJFRpbWVzdGFtcDwtYXMuUE9TSVhjdChiYXJvJFRpbWVzdGFtcCkKICAKICAjQ2FjbHVjdWxhdGUgd2F0ZXJsZXZlbH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAjY3JlYXRlIGJhcm8gaW50ZXJwb2xhdGlvbiBmdW5jdGlvbgogIGJhcm9fZnVuPC1hcHByb3hmdW4oYmFybyRUaW1lc3RhbXAsIGJhcm8kYmFyb21ldHJpY1ByZXNzdXJlKQogIAogICNjYWxjdWxhdGUgYmFybyBmb3IgZWFjaCBkZiB0aW1lIHN0ZXAKICBkZiRiYXJvbWV0cmljUHJlc3N1cmU8LWJhcm9fZnVuKGRmJFRpbWVzdGFtcCkKICAKICAjQ2FjbHVhdGUgZ2FnZSBwcmVzc3VyZQogIGRmJHByZXNzdXJlR2F1Z2U8LWRmJHByZXNzdXJlQWJzb2x1dGUtZGYkYmFyb21ldHJpY1ByZXNzdXJlCiAgCiAgI0NhbGN1bGF0ZSByZWxhdGl2ZSB3YXRlciBsZXZlbAogIGRmJGdhZ2VIZWlnaHQ8LWRmJHByZXNzdXJlR2F1Z2UvOS44MQogIAogICNXYXRlciBMZXZlbAogIGRmJHdhdGVyTGV2ZWw8LWRmJGdhZ2VIZWlnaHQrcmVsYXRpdmVfd2wKICAKICAjUHJ1bmUgd2F0ZXIgbGV2ZWwgYmFzZWQgb24gZGVwbG95bWVudCB0aW1lCiAgZGY8LWRmW2RmJFRpbWVzdGFtcDxkZXBsb3ltZW50LF0KICBkZjwtbmEub21pdChkZikKICAKICAjYWRkICJvZmZzZXQgY29sbHVtbiIKICBkZiRvZmZzZXQ8LTAKICAKICAjZGVsZXRlIHBvdGVudGlhbCBkdXBsaWNhdGVzCiAgZGY8LWRmWyFkdXBsaWNhdGVkKGRmKSxdCiAgCiAgI1dyaXRlIGRmIHRvIHRlbXAgZmlsZQogIHdyaXRlLmNzdihkZiwgcGFzdGUwKHdvcmtpbmdfZGlyLCJpbnRlcm1lZGlhdGUvIiwgc2VyaWFsX251bWJlciwiLmNzdiIpKQp9CgojQ3JlYXRlIGxpc3Qgb2YgUFQgZmlsZXMKbG9nczwtbGlzdC5maWxlcyhwYXN0ZTAod29ya2luZ19kaXIsImV4cG9ydCIpKQpsb2dzPC1sb2dzW2xvZ3MhPSJiYXJvLmNzdiJdCgojY3JlYXRlIHRlbXAgZmlsZSB0byBzdG9yZSBpbnRlcm1lZGlhdGUgZmlsZXMKZGlyLmNyZWF0ZShwYXN0ZTAod29ya2luZ19kaXIsImludGVybWVkaWF0ZSIpKQoKI1J1biBmdW5jdGlvbiAKbGFwcGx5KHNlcSgxLCBsZW5ndGgobG9ncykpLCBmdW4pCmBgYAoKI1dhdGVyIExldmVsIFFBUUMKYGBge3IgdHNfcGxvdCBmdW5jdGlvbiwgZWNobz1GQUxTRSwgcmVzdWx0cz0iaGlkZSJ9CmZ1bjwtZnVuY3Rpb24obil7CiAgI1JlYWQgZGYKICBkZjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCiAgZGYkVGltZXN0YW1wPC1hcy5QT1NJWGN0KGRmJFRpbWVzdGFtcCkKICBkZiR3YXRlckxldmVsPC1kZiR3YXRlckxldmVsKjEwMCsxMDAwIAogIAogICNwdWxsIHdhdGVyIGxldmVsIGZyb20gZGF0YWJhc2UKICBkZl9oaXN0b3JpYzwtTlVMTCNkYl9nZXRfd2F0ZXJfbGV2ZWxfdHMoZGIscGFzdGUobWFzdGVyJFNpdGVfTmFtZVtuXSkpCiAgCiAgI0Zvcm1hdCBkZgogIGlmKGxlbmd0aChkZl9oaXN0b3JpYyk9PTApewogICAgZGYgPC0gZGYgJT4lIHNlbGVjdChUaW1lc3RhbXAsIHdhdGVyTGV2ZWwpCiAgICBkZl94dHM8LXh0cyhkZiwgb3JkZXIuYnk9ZGYkVGltZXN0YW1wKQogICAgZGZfeHRzPC1kZl94dHNbLC0xXQogIH1lbHNlewogICAgI2FkZCBkYXR1bSBjb3JyZWN0aW9uIHRvIGRmX2hpc3RvcmljCiAgICBkZiA8LSBkZiAlPiUgc2VsZWN0KFRpbWVzdGFtcCwgd2F0ZXJMZXZlbCkKICAgIGRmX2hpc3RvcmljJHdhdGVyTGV2ZWw8LWRmX2hpc3RvcmljJHdhdGVyTGV2ZWwqMTAwKzEwMDAgIAogICAgZGZfaGlzdG9yaWM8LWRmX2hpc3RvcmljWyxjKCJUaW1lc3RhbXAiLCJ3YXRlckxldmVsIildCiAgICBkZl9oaXN0b3JpYyRncm91cDwtIm9sZCIKICAgIGRmJGdyb3VwPC0ibmV3IgogICAgZGY8LXJiaW5kKGRmX2hpc3RvcmljLCBkZikKICAgIGRmX3NwcmVhZCA8LSBkZiAlPiUgCiAgICAgICBkcGx5cjo6c2VsZWN0KFRpbWVzdGFtcCwgZ3JvdXAsIHdhdGVyTGV2ZWwpICU+JQogICAgICAgdGlkeXI6OnNwcmVhZChrZXkgPSBncm91cCwgdmFsdWUgPSB3YXRlckxldmVsKQogICAgZGZfeHRzPC14dHMoZGZfc3ByZWFkLCBvcmRlci5ieT1kZl9zcHJlYWQkVGltZXN0YW1wKQogICAgZGZfeHRzPC1kZl94dHNbLC0xXQogICAgfQogIAogICNQbG90CiAgdHNfcGxvdDwtZHlncmFwaChkZl94dHMsIG1haW49bWFzdGVyJFNpdGVfTmFtZVtuXSkgJT4lCiAgICAgICAgICAgICAgZHlSYW5nZVNlbGVjdG9yKCkgJT4lCiAgICAgICAgICAgICAgZHlMZWdlbmQoKSAlPiUKICAgICAgICAgICAgICBkeU9wdGlvbnMoc3Ryb2tlV2lkdGggPSAxLjUpICU+JQogICAgICAgICAgICAgIGR5T3B0aW9ucyhsYWJlbHNVVEMgPSBUUlVFKSAlPiUKICAgICAgICAgICAgICBkeUhpZ2hsaWdodChoaWdobGlnaHRDaXJjbGVTaXplID0gNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0U2VyaWVzQmFja2dyb3VuZEFscGhhID0gMC4yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlT25Nb3VzZU91dCA9IEZBTFNFKSAlPiUKICAgICAgICAgICAgICBkeUF4aXMoInkiLCBsYWJlbCA9ICJXYXRlciBMZXZlbCBbY21dIikKICAKICAjRXhwb3J0IFBsb3QKICByZXR1cm4odHNfcGxvdCkKfQpgYGAKCiMjUGxvdHMKVGhpcyBpcyBwcmVsaW1pbmFyeSBkYXRhIGFuZCB3aWxsIHVuZGVyZ28gbW9yZSByaWd1cm91cyBRQVFDIGF0IGEgbGF0ZXIgZGF0ZS4gSSB3aWxsIGdvIGJhY2sgYW5kIHBsb3QgaW5kaXZpZHVhbGx5IGxhdGVyIGFzIHBhcnQgb2YgdGhlIFFBUUMgcHJvY2VkdXJlISA6KSAKCmBgYHtyLCBlY2hvPUZBTFNFfQpsYXBwbHkoc2VxKDEsIGxlbmd0aChtYXN0ZXIkU2l0ZV9OYW1lKSksIGZ1bikKYGBgCgojRGF0YWJhc2UgSW1wb3J0CmBgYHtyIGRhdGFiYXNlIGltcG9ydCwgZWNobz1GQUxTRX0KI0NyZWF0ZSBmdW5jdGlvbgpmdW48LWZ1bmN0aW9uKG4pewogICNEb3dubG9hZCBpbnRlcm1lZGlhdGUgdHMgZGF0YQogIGRmPC1yZWFkLmNzdihwYXN0ZTAod29ya2luZ19kaXIsImludGVybWVkaWF0ZS8iLCBsb2dzW25dKSkKICBkZjwtZGZbLGMoIlRpbWVzdGFtcCIsIndhdGVyTGV2ZWwiKV0KICBkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQoKICAjU29uZGUgSUQKICBzbjwtYXMubnVtZXJpYyhzdWJzdHIobG9nc1tuXSwgMSxuY2hhcihsb2dzW25dKS00KSkKICAKICAjQ3JlYXRlIHZhcmlhYmxlIGxpc3QKICB2YXJzX2xpc3Q8LWxpc3QoIyJwcmVzc3VyZUFic29sdXRlIiAgICA9IGxpc3QoY29sdW1uID0gInByZXNzdXJlQWJzb2x1dGUiLCAgIHVuaXRzID0gIktQYSIpLAogICAgICAgICAgICAgICAgICAjImJhcm9tZXRyaWNQcmVzc3VyZSIgID0gbGlzdChjb2x1bW4gPSAiYmFyb21ldHJpY1ByZXNzdXJlIiwgdW5pdHMgPSAiS1BhIiksCiAgICAgICAgICAgICAgICAgICMicHJlc3N1cmVHYXVnZSIgICAgICAgPSBsaXN0KGNvbHVtbiA9ICJwcmVzc3VyZUdhdWdlIiwgICAgICB1bml0cyA9ICJLUGEiKSwKICAgICAgICAgICAgICAgICAgIyJnYWdlSGVpZ2h0IiAgICAgICAgICA9IGxpc3QoY29sdW1uID0gImdhZ2VIZWlnaHQiLCAgICAgICAgIHVuaXRzID0gIk1ldGVyIiksCiAgICAgICAgICAgICAgICAgICJXYXRlciBsZXZlbCIgICAgICAgICAgPSBsaXN0KGNvbHVtbiA9ICJ3YXRlckxldmVsIiwgICAgICAgICB1bml0cyA9ICJNZXRlciIpKSMsCiAgICAgICAgICAgICAgICAgICMib2Zmc2V0IiAgICAgICAgICAgICAgPSBsaXN0KGNvbHVtbiA9ICJvZmZzZXQiLCAgICAgICAgICAgICB1bml0cyA9ICJNZXRlciIpKQoKICAjSW5zZXJ0IGRhdGEgaW50byBkYXRhYmFzZQogIHQwPC1TeXMudGltZSgpCiAgZGJfaW5zZXJ0X3Jlc3VsdHNfdHMoZGIgPSBkYiwgIyBkYXRhYmFzZSBjb25uZWN0b24KICAgICAgICAgICAgICAgICAgICAgICBkYXRhdmFsdWVzID0gZGYsICMgZGF0YSBmcmFtZSBvZiB0aW1lIHNlcmllcyBkYXRhCiAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gIlBUX0Rvd25sb2FkIiwKICAgICAgICAgICAgICAgICAgICAgICBzaXRlX2NvZGUgPSBhcy5jaGFyYWN0ZXIobWFzdGVyJFNpdGVfTmFtZVttYXN0ZXIkU29uZGVfSUQ9PXNuXSksCiAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzID0gdmFyc19saXN0LAogICAgICAgICAgICAgICAgICAgICAgIHNhbXBsZWRtZWRpdW0gPSAiTGlxdWlkIGFxdWVvdXMiLAogICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbmJ5ID0gIk5hdGUiLCAKICAgICAgICAgICAgICAgICAgICAgICBlcXVpcG1lbnRfbmFtZSA9IGFzLmNoYXJhY3RlcihtYXN0ZXIkU29uZGVfSURbbWFzdGVyJFNvbmRlX0lEPT1zbl0pKQogIHRmPC1TeXMudGltZSgpCiAgdGYtdDAKfQoKI0NyZWF0ZSBsaXN0IG9mIGludGVybWVkaWF0ZSBmaWxlcwpsb2dzPC1saXN0LmZpbGVzKHBhc3RlMCh3b3JraW5nX2RpciwiaW50ZXJtZWRpYXRlIikpCmxvZ3M8LWxvZ3NbbG9ncyE9cGFzdGUwKG1hc3RlciRTb25kZV9JRFttYXN0ZXIkU2l0ZV9OYW1lPT0iR3JlZyBDYXRjaG1lbnQgT3V0bGV0Il0sIi5jc3YiKV0KbG9nczwtbG9nc1tsb2dzIT1wYXN0ZTAobWFzdGVyJFNvbmRlX0lEW21hc3RlciRTaXRlX05hbWU9PSJEb2dib25lIENhdGNobWVudCBPdXRsZXQiXSwiLmNzdiIpXQpsb2dzPC1sb2dzW2xvZ3MhPXBhc3RlMChtYXN0ZXIkU29uZGVfSURbbWFzdGVyJFNpdGVfTmFtZT09IlNvbHV0ZSBDYXRjaG1lbnQgT3V0bGV0Il0sIi5jc3YiKV0KbG9nczwtbG9nc1tsb2dzIT1wYXN0ZTAobWFzdGVyJFNvbmRlX0lEW21hc3RlciRTaXRlX05hbWU9PSJTUiBVcGxhbmQgV2VsbCAxIl0sIi5jc3YiKV0KbG9nczwtbG9nc1tsb2dzIT1wYXN0ZTAobWFzdGVyJFNvbmRlX0lEW21hc3RlciRTaXRlX05hbWU9PSJTUiBVcGxhbmQgV2VsbCAyIl0sIi5jc3YiKV0KbG9nczwtbG9nc1tsb2dzIT1wYXN0ZTAobWFzdGVyJFNvbmRlX0lEW21hc3RlciRTaXRlX05hbWU9PSJTZWFycyBCYXJvIl0sIi5jc3YiKV0KbG9nczwtbG9nc1tsb2dzIT1wYXN0ZTAobWFzdGVyJFNvbmRlX0lEW21hc3RlciRTaXRlX05hbWU9PSJTTiBVcGxhbmQgV2VsbCAxIl0sIi5jc3YiKV0KICAgCgojUnVuIGZ1bmN0aW9uCnQwPC1TeXMudGltZSgpCmZvcihpIGluIDE6bGVuZ3RoKGxvZ3MpKXsKICBwcmludChpKQogIGZ1bihpKQp9CnRmPC1TeXMudGltZSgpCnRmLXQwCgojRGlzY29ubmVjdCBmcm9tIERCCmRiRGlzY29ubmVjdChkYikKYGBgCg==